/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.Controller;

import com.Model.Acervo;
import com.Model.AcervoCampo;
import com.Model.Campo;
import com.Model.Repositories.AcervoRepository;
import com.Model.Repositories.CampoRepository;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Fellipe
 */
@ManagedBean
@ViewScoped
public class Acervos {

    private Acervo acervo;
    private List<Acervo> acervos;
    private AcervoCampo acervoCampo;
    private List<AcervoCampo> lista = new ArrayList<AcervoCampo>();

    public List<AcervoCampo> getLista() {
        return lista;
    }

    public void setLista(List<AcervoCampo> lista) {
        this.lista = lista;
    }

    public AcervoCampo getAcervoCampo() {
        if (acervoCampo == null) {
            acervoCampo = new AcervoCampo();
            acervoCampo.setCampo(new Campo());
        }
        return acervoCampo;
    }

    public void setAcervoCampo(AcervoCampo acervoCampo) {
        this.acervoCampo = acervoCampo;
    }

    public void delete() {
        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        int id = Integer.parseInt(params.get("chave"));
        new AcervoRepository().delete(id);
    }

    public void update() {
        new AcervoRepository().update(this.acervo);
    }

    public void create() {
        System.out.println(this.acervo.getDescricao());
        System.out.println(this.acervo.getAcervoCampo().get(0).getCampo().getTitulo());
        if (acervo != null) {
            System.out.println("Acervo != null");
        } else {
            System.out.println("Acervo == null");
        }
        if (acervoCampo != null) {
            System.out.println("AcervoCampo != null");
        } else {
            System.out.println("AcervoCampo == null");
        }
        if (lista != null) {
            System.out.println("Lista != null ");
        } else {
            System.out.println("Lista == null");
        }
        new AcervoRepository().create(this.acervo);
    }

    public List<Acervo> getAcervos() {
        if (this.acervos == null) {
            this.acervos = new AcervoRepository().readNomes();
        }
        return this.acervos;
    }

    public Acervo getAcervo() {
        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        if (params.get("chave") != null) {
            Integer id = Integer.parseInt(params.get("chave"));
            this.acervo = new AcervoRepository().read(id);
        } else if (acervo == null) {
            System.out.println("bem loko criando acervo");
            this.acervo = new Acervo();
        }
        return acervo;
    }

    public void addRow() {

        acervoCampo.setCampo(new CampoRepository().read(acervoCampo.getCampo().getChaveCampo()));
        lista.add(acervoCampo);
        acervo.setAcervoCampo(lista);
        acervoCampo = null;

    }

    public void addRowRep() {
        acervo.getAcervoCampo().add(this.acervoCampo);
    }

}
